package com.king.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用于注解类或属性的元数据，这MetaData.java些元数据可用于代码生成或运行时动态内容生成
 * 
 * @author yy-team
 * @date 2017年9月6日
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PACKAGE })
public @interface MetaData {

	/**
	 * 简要注解说明：一般对应表单项Label属性显示
	 */
	String value();

	/**
	 * 枚举类型
	 */
	String enumtype() default "";

	/**
	 * 注释说明：用于描述代码内部用法说明，一般不用于前端UI显示
	 */
	String comments() default "";

	/**
	 * 数据交换时候是否可以为空，页面传值是否可以为空
	 * 默认可以为空，不为空需要增加注解
	 */
	boolean nullable() default true;

	/*
	 * 可以扩展增加其他属性，用于描述字段
	 */

}
